const fs = require("fs")

// path 模块：处理文件路径

const path = require("path")

//用于输出当前操作系统的路径分隔符
console.log("当前的路径分割符： ", path.sep) // windows: \ [反斜杠]  Linux: / [正斜杠]

let data = fs.readFileSync("C:" + path.sep + "install.log", "utf-8")
console.log("fs读取文件： ", data)

let p = path.join("aa", "install.log") //路径拼接
console.log("join的路径拼接：", p)

// resolve 是在当前文件夹路径下拼接路径
let p1 = path.resolve("aa", "install.log")
console.log("resolve的路径拼接： ", p1)

// 在绝对路径上拼接
let p2 = path.resolve("/aa", "install.log") // "/aaa"表示以aaa为根目录
console.log("/aa 的resolve 的路径拼接： ", p2)

//返回路径的最后一部分（文件名+扩展名）
let p3 = path.basename(p2)
console.log("basename 结果： ", p3)

//返回路径的最后一部分，并去除指定的扩展名（第二个参数）
p3 = path.basename(p2, ".log")
console.log("basename 结果： ", p3)


//返回路径的目录部分（去除最后一部分后的路径）
let p4 = path.dirname(p2)
console.log("dirname 结果： ", p4)

//返回路径的扩展名（从最后一个 . 开始到结尾的部分，包含 .）
let p5 = path.extname(p2)
console.log("extname 结果:", p5)

// 将路径解析为一个对象，包含 root（根目录）、dir（目录）、base（文件名+扩展名）、name（文件名）、ext（扩展名）五个属性
let res = path.parse("C:\\install.log")
console.log("parse 结果：", res)

//返回当前执行脚本所在的‌目录绝对路径
console.log(__dirname)

//返回当前执行脚本的‌完整文件绝对路径
console.log(__filename)